package com.bee.剑指offer;

import java.util.ArrayList;
import java.util.List;

public class 删除链表的倒数第n个节点 {

    /**
     * 使用list集合，之后取倒数第几个节点，之后删除
     */
    public ListNode removeNthFromEnd (ListNode head, int n) {
        if(head == null) {
            return head;
        }

        List<ListNode> list = new ArrayList<>();
        ListNode temp = head;
        while (temp != null) {
            list.add(temp);
            temp = temp.next;
        }
        if(n == 1) {
            // 删除尾节点
            if(list.size() <=1) {
                return null;
            }
            list.get(list.size() - 2).next = null;
            return head;
        }
        if(n == list.size()) {
            // 是头节点
            return list.get(1);
        }
        // 删除中间节点
        int s = list.size() - n;
        list.get(s - 1).next = list.get(s + 1);
        return head;
    }

    public static void main(String[] args) {

    }
}
